#include "gifthread.h"

GifThread::GifThread(const QString gifpath)
{
    gifPath = gifpath;
    label = new QLabel;

//    connect(this,&GifThread::sig_stop,this,[=](){
//        // 退出线程,包括事件循环
//        this->quit();
//    },Qt::QueuedConnection);
}

GifThread::~GifThread()
{
    qDebug()<<"gifThread 析构";
}

void GifThread::run()
{
    gif = new QMovie(gifPath);
    label->setMovie(gif);
    gif->start();
    qDebug()<<"gif线程id:"<<currentThreadId();
    // 使用事件循环来允许QMovie播放动画
    exec();
    // 清理资源
    gif->stop();
    delete gif;
    gif = nullptr;
    qDebug()<<"gif线程结束";
//    while(!stopFlag)
//    {
//        qDebug()<<currentThreadId();
//        msleep(100);
//        qApp->processEvents();
//        qDebug()<<stopFlag;
//    }

}

